# 定义编译器
CC = gcc

# 定义编译器标志
CFLAGS = -g -std=gnu99 -Wall

# 定义链接器标志
LDFLAGS = -lpthread

# 定义目标文件
TARGET = test

# 定义源文件
SRCS = main.c Buffer.c Channel.c ChannelMap.c EpollDispatcher.c EventLoop.c HttpRequest.c HttpResponse.c PollDispatcher.c SelectDispatcher.c TcpConnection.c TcpServer.c ThreadPool.c WorkThread.c

# 定义生成的对象文件
OBJS = $(SRCS:.c=.o)

# 默认目标
all: $(TARGET)

# 目标规则
$(TARGET): $(OBJS)
	$(CC) $(CFLAGS) -o $(TARGET) $(OBJS) $(LDFLAGS)

# 生成对象文件的规则
%.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@

# 清理
.PHONY: clean
clean:
	rm -f $(OBJS) $(TARGET)
